package com.iran.singleton;

/**
 * 内部类，提升了内存使用率 推荐第二名
 * 定义一个私有的内部类，在第一次用这个嵌套类时，会创建一个实例。而类型为SingletonHolder的类，只有在Singleton.getInstance()中调用，
 * 由于私有的属性，他人无法使用SingleHolder，不调用Singleton.getInstance()就不会创建实例
 * 达到了lazy loading的效果，即按需创建实例。
 */
public class SingletonInnerClass {
    private SingletonInnerClass(){

    }
    private static class InnerClass{
        private final static SingletonInnerClass singletonInnerClass = new SingletonInnerClass();
    }

    public static SingletonInnerClass getInstance(){
        return InnerClass.singletonInnerClass;
    }
}
